// 批量点击详情按钮 - 处理iframe情况的版本
// 复制到浏览器控制台执行

(function autoClickWithTabClose() {
    console.log('🚀 开始批量点击详情按钮（支持iframe）...');
    
    const WAIT_TIME = 8000; // 每个详情页停留时间：8秒
    
    // 尝试获取iframe
    function getIframe() {
        // 常见iframe选择器
        const iframeSelectors = [
            'iframe',
            'iframe#main',
            'iframe.main',
            '.iframe',
            'iframe[name="main"]',
            'iframe[name="content"]'
        ];
        
        for (const selector of iframeSelectors) {
            const iframe = document.querySelector(selector);
            if (iframe) {
                console.log(`找到iframe: ${selector}`);
                return iframe;
            }
        }
        
        // 尝试获取所有iframe
        const iframes = document.querySelectorAll('iframe');
        if (iframes.length > 0) {
            console.log(`找到 ${iframes.length} 个iframe，使用第一个`);
            return iframes[0];
        }
        
        return null;
    }
    
    // 查找"详情"按钮
    function findButtons() {
        // 先尝试在iframe中查找
        const iframe = getIframe();
        if (iframe) {
            try {
                const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
                const buttons = Array.from(iframeDoc.querySelectorAll('a.layui-btn')).filter(
                    btn => btn.textContent.includes('详情')
                );
                
                if (buttons.length > 0) {
                    console.log(`✅ 在iframe中找到 ${buttons.length} 个详情按钮`);
                    return { buttons, iframe, iframeDoc };
                }
            } catch (e) {
                console.warn('无法访问iframe内容（跨域问题）', e);
            }
        }
        
        // 尝试在主页面查找
        const buttons = Array.from(document.querySelectorAll('a.layui-btn')).filter(
            btn => btn.textContent.includes('详情')
        );
        
        if (buttons.length > 0) {
            console.log(`✅ 在主页面找到 ${buttons.length} 个详情按钮`);
            return { buttons, iframe: null, iframeDoc: document };
        }
        
        return null;
    }
    
    const result = findButtons();
    
    if (!result || !result.buttons || result.buttons.length === 0) {
        console.error('❌ 未找到详情按钮');
        console.log('提示：请确保页面已完全加载，或者iframe已加载');
        return;
    }
    
    const { buttons, iframe, iframeDoc } = result;
    console.log(`📌 将处理全部 ${buttons.length} 个按钮`);
    
    let index = 0;
    
    function closeCurrentTab() {
        // 查找当前激活的标签页的关闭按钮
        // tab应该在主页面，不在iframe中
        let closeBtn = document.querySelector('.layui-tab-active .layui-tab-close');
        
        if (!closeBtn && iframe) {
            // 如果主页面找不到，尝试在iframe中找
            const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
            closeBtn = iframeDoc.querySelector('.layui-tab-active .layui-tab-close');
        }
        
        if (closeBtn) {
            console.log('🔴 关闭当前标签页');
            closeBtn.click();
            return true;
        }
        console.warn('⚠️ 未找到关闭按钮');
        return false;
    }
    
    function switchToNextTab() {
        // 获取所有tab
        // tab通常在主页面的导航区域
        let tabs = document.querySelectorAll('.layui-tab-title li');
        
        if (tabs.length === 0 && iframe) {
            // 如果主页面找不到，尝试在iframe中找
            try {
                const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
                tabs = iframeDoc.querySelectorAll('.layui-tab-title li');
            } catch (e) {
                console.warn('无法访问iframe获取tab列表');
            }
        }
        
        if (tabs.length > 1) {
            // 找到最后一个tab（刚打开的详情页）
            const lastTab = tabs[tabs.length - 1];
            
            // 如果最后一个tab不是激活状态，点击它
            if (!lastTab.classList.contains('layui-this')) {
                console.log('🔄 切换到详情页标签');
                lastTab.click();
                return true;
            }
        }
        
        console.warn('⚠️ 无法切换到新tab');
        return false;
    }
    
    function processDetailsAfterClick() {
        if (index >= buttons.length) {
            console.log('✅ 完成！已点击所有详情');
            return;
        }
        
        // 等待tab打开
        setTimeout(() => {
            // 切换到新打开的详情页tab
            try {
                const switched = switchToNextTab();
                
                if (switched) {
                    console.log(`✅ 已切换到第 ${index + 1} 个详情页`);
                } else {
                    console.log(`⚠️ 第 ${index + 1} 个详情页已打开但无法自动切换（可能需要手动切换tab）`);
                }
            } catch (e) {
                console.warn('切换tab时出错:', e);
            }
            
            // 在详情页停留8秒
            setTimeout(() => {
                // 尝试关闭当前详情页tab
                try {
                    closeCurrentTab();
                } catch (e) {
                    console.warn('关闭tab时出错:', e);
                }
                
                // 等待tab关闭
                setTimeout(() => {
                    // 继续点击下一个
                    index++;
                    if (index < buttons.length) {
                        processNextButton();
                    } else {
                        console.log('✅ 所有按钮已点击完毕');
                    }
                }, 500);
            }, WAIT_TIME);
        }, 1000); // 等待tab加载
    }
    
    function processNextButton() {
        if (index >= buttons.length) {
            console.log('✅ 完成！已点击所有详情');
            return;
        }
        
        const btn = buttons[index];
        console.log(`📍 点击第 ${index + 1}/${buttons.length} 个详情按钮`);
        
        try {
            // 尝试多种点击方式
            if (btn) {
                // 方式1: 标准click
                btn.click();
                
                console.log('✓ 已点击按钮（标准click）');
            } else {
                console.error('❌ 按钮对象为空');
                index++;
                if (index < buttons.length) {
                    setTimeout(processNextButton, 2000);
                }
                return;
            }
            
            // 处理详情页（切换、停留、关闭）
            processDetailsAfterClick();
        } catch (e) {
            console.error('点击按钮时出错:', e);
            console.log('尝试继续下一个...');
            index++;
            if (index < buttons.length) {
                setTimeout(processNextButton, 2000);
            }
        }
    }
    
    // 开始执行（延迟1秒让页面准备）
    console.log('\n========== 开始批量点击 ==========');
    console.log(`⏳ 将在1秒后开始，每个详情页停留 ${WAIT_TIME/1000} 秒`);
    console.log(`📊 共 ${buttons.length} 个详情按钮`);
    console.log('💡 提示：如果tab切换失败，您可能需要手动切换tab');
    console.log('💡 提示：如果关闭按钮找不到，您可以手动关闭，脚本会继续');
    console.log('========== 准备开始 ==========\n');
    
    setTimeout(() => {
        processNextButton();
    }, 1000);
})();

